home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 44 / Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso / -in_the_mag- / basics / amos / moreuselssprgs.lha / MiniDungeon.AMOS / MiniDungeon.amosSourceCode < prev    next >
AMOS Source Code  |  1997-04-18  |  4KB  |  104 lines

  1. Screen Open 1,320,120,32,0
  2. Curs Off : Flash Off : Cls 0
  3. For A=0 To 1
  4.   O=A*14
  5.   Unpack 9+A To 0
  6.   Get Block 1+O,0,0,176,120
  7.   Rem front walls
  8.   Get Block 2+O,184,0,128,96 : Rem  X=24:Y=8 :GX=96   
  9.   Get Block 3+O,184,96,80,60 : Rem  X=48:Y=20:GX=60   
  10.   Get Block 4+O,184,164,48,36 : Rem X=64:Y=28:GX=48
  11.   Rem left wall pieces 
  12.   Get Block 5+O,0,120,24,120,1 : Rem  X=0 
  13.   Get Block 6+O,24,120,24,120,1 : Rem X=24 
  14.   Get Block 7+O,48,120,16,120,1 : Rem X=48 
  15.   Get Block 8+O,64,120,16,120,1 : Rem X=64 
  16.   Rem right wall pieces
  17.   Get Block 9+O,152,120,24,120,1 : Rem  X=152   
  18.   Get Block 10+O,128,120,24,120,1 : Rem X=128
  19.   Get Block 11+O,112,120,16,120,1 : Rem X=112
  20.   Get Block 12+O,96,120,16,120,1 : Rem X=96 
  21. Next 
  22. Unpack 11 To 0
  23. Get Block 13,0,0,48,56,1
  24. Get Block 14,0,56,48,56,1
  25. Get Block 27,48,0,48,56,1
  26. Get Block 28,48,56,48,56,1
  27. Paper 0 : Cls 0
  28. Reserve As Work 8,4102
  29. Bload "DM1",8
  30. XX=Peek(Start(8)) : YY=Peek(Start(8)+1) : R=Peek(Start(8)+2)
  31. For Y=0 To 63
  32.   For X=0 To 63
  33.     Plot X+180,Y,Peek(Start(8)+6+X+Y*64)
  34.   Next 
  35. Next 
  36. Zoom 0,180,0,244,64 To 0,0,128,256,256
  37. Limit Mouse : Change Mouse 2
  38. 'Clip 0,0 To 176,120 
  39. Screen 1 : Get Palette 0
  40. O=14
  41. Do 
  42.   X Mouse=308+XX : Y Mouse=42+YY
  43.   If XX<>AX or YY<>AY Then Gosub MAKEGFX : If O=14 Then O=0 Else O=14
  44.   Wait Vbl : Screen Copy 1,0,0,176,120 To 0,0,0 : Wait Vbl 
  45.   AX=XX : AY=YY
  46.   If Jup(1) Then Gosub UP
  47.   If Jdown(1) Then Gosub D0WN
  48.   If Peek(Start(8)+6+XX+YY*64) Then XX=AX : YY=AY
  49.   If Jleft(1) Then Add R,-1,1 To 4 : AX=0 : AY=0
  50.   If Jright(1) Then Add R,1,1 To 4 : AX=0 : AY=0
  51. Loop 
  52. MAKEGFX:
  53.   Cls 0
  54.   Put Block 1+O,0,0 : AD=Start(8)+6
  55.   X=-2 : Y=-3 : Gosub GFLD : If C Then Put Block 8+O,16,0
  56.   X=2 : Y=-3 : Gosub GFLD : If C Then Put Block 12+O,144,0
  57.   X=-1 : Y=-3 : Gosub GFLD : If C Then Put Block 8+O,64,0
  58.   X=1 : Y=-3 : Gosub GFLD : If C Then Put Block 12+O,96,0
  59.   Rem hinterste Mauer
  60.   X=-3 : Y=-3 : Gosub GFLD : If C Then Put Block 8+O,0,0
  61.   X=3 : Y=-3 : Gosub GFLD : If C Then Put Block 12+O,160,0
  62.   X=0 : Y=-3 : Gosub GFLD : If C Then Put Block 4+O,64,28
  63.   X=-1 : Y=-3 : Gosub GFLD : If C Then Put Block 4+O,16,28
  64.   X=-2 : Y=-3 : Gosub GFLD : If C Then Put Block 4+O,-32,28
  65.   X=1 : Y=-3 : Gosub GFLD : If C Then Put Block 4+O,112,28
  66.   X=2 : Y=-3 : Gosub GFLD : If C Then Put Block 4+O,160,28
  67.   X=-3 : Y=-2 : Gosub GFLD : If C Then Put Block 7+O,0,0
  68.   X=3 : Y=-2 : Gosub GFLD : If C Then Put Block 11+O,160,0
  69.   X=-1 : Y=-2 : Gosub GFLD : If C Then Put Block 7+O,48,0
  70.   X=1 : Y=-2 : Gosub GFLD : If C Then Put Block 11+O,112,0
  71.   Rem hintere Mauer
  72.   X=0 : Y=-2 : Gosub GFLD : If C Then Put Block 3+O,48,20
  73.   X=-1 : Y=-2 : Gosub GFLD : If C Then Put Block 3+O,-32,20
  74.   X=1 : Y=-2 : Gosub GFLD : If C Then Put Block 3+O,128,20
  75.   X=-1 : Y=-1 : Gosub GFLD : If C Then Put Block 6+O,24,0
  76.   X=1 : Y=-1 : Gosub GFLD : If C Then Put Block 10+O,128,0
  77.   Rem vorderste Mauer
  78.   X=0 : Y=-1 : Gosub GFLD : If C Then Put Block 2+O,24,8
  79.   X=-1 : Y=-1 : Gosub GFLD : If C Then Put Block 2+O,-104,8
  80.   X=1 : Y=-1 : Gosub GFLD : If C Then Put Block 2+O,152,8
  81.   X=-1 : Y=0 : Gosub GFLD : If C Then Put Block 5+O,0,0
  82.   X=1 : Y=0 : Gosub GFLD : If C Then Put Block 9+O,152,0
  83.   Put Block 13+O,64,64
  84. Return 
  85. UP:
  86.   If R=1 Then Dec YY
  87.   If R=2 Then Inc XX
  88.   If R=3 Then Inc YY
  89.   If R=4 Then Dec XX
  90. Return 
  91. D0WN:
  92.   If R=3 Then Dec YY
  93.   If R=4 Then Inc XX
  94.   If R=1 Then Inc YY
  95.   If R=2 Then Dec XX
  96. Return 
  97. GFLD:
  98.   If R=1 Then EX=XX+X : EY=YY+Y
  99.   If R=2 Then EY=YY+X : EX=XX-Y
  100.   If R=3 Then EX=XX-X : EY=YY-Y
  101.   If R=4 Then EY=YY-X : EX=XX+Y
  102.   EX=Max(0,Min(EX,63)) : EY=Max(0,Min(EY,63))
  103.   C=Peek(Start(8)+6+EX+EY*64)
  104. Return